#include <stdio.h>

// 定义标志位，用int中的不重复的一个bit，就可以标识一种状态
#define ONE   0x1    //0000 0001
#define TWO   0x2    //0000 0010
#define THREE 0x4    //0000 0100

// 显示函数，根据标志位输出不同的消息
void show(int flags) {
    if (flags & ONE)  
        printf("你好，第一种状态\n");
    if (flags & TWO)
        printf("你好，第二种状态\n");
    if (flags & THREE)
        printf("你好，第三种状态\n");
}

int main() {
    // 分别显示不同的状态
    show(ONE);
    printf("-----------------------------------------\n");
    show(TWO);
    printf("-----------------------------------------\n");
    show(ONE | TWO); // 使用按位或运算符组合标志位
    printf("-----------------------------------------\n");
    show(ONE | TWO | THREE);//0000 0001 | 0000 0010=0000 0011
    printf("-----------------------------------------\n");
    show(ONE | THREE);
    return 0;
}
